RDS MySQL 5.5からAmazon Auroraにオンライン移行する方法
はじめに
AWSチームのすずきです。
Amazon RDS DB for MySQL(以下、RDS MySQL)、DBエンジンとして5.6を利用している場合、 AWSコンソールを利用して、Amazon Aurora のリードレプリカを作成出来ます。
今回、RDS MySQL 5.5 のDBを、RDS MySQL 5.6 の多段リードレプリケーション経由で、 Amazon Aurora にオンライン移行する機会がありましたので、紹介させて頂きます。
概要図
手順
リードレプリカの作成
- 移行元となるMySQL5.5のDBを指定して、リードレプリカを作成します。
- 所要時間は主にDB容量、スペックに依存しますが、今回のDB容量8GB弱の環境では10分程度で完了しました。
レプリカノードのアップグレード
- リードレプリカノードのDBエンジン、Auroraレプリケーションに対応するバージョン5.6に変更します。
- 今回、DBエンジンのバージョンは、5.6.27を利用しました。
- DBインスタンスの変更「すぐに適用」のチェックを行い、即時変更としました。
- パラメータグループ設定はデフォルトを利用しました。カスタマイズが必要な場合、事前にMySQL5.6用のDBパラメータグループを用意します。
-
所要時間は7分程でした。
レプリカノードの自動バックアップ設定
- レプリカノードからの多段リードレプリカを設定するため、自動バックアップを有効とします
- レプリカノードで取得したバックアップ(DBスナップショット)は初期同期のみに利用し長期保持する必要性はない為、保存期間は1日としました。
- DBインスタンスの変更「すぐに適用」のチェックを行い、即時変更としました。
- 所要時間は7分程でした。
Aurora リードレプリカの作成
- MySQL5.6、自動バックアップを有効にしたリードレプリカから、Auroraリードレプリカを作成します。
- 今回の利用用途は検証環境、インスタンスタイプは「t2.small」、マルチAZ配置は実施しない設定としました。
- パラメータグループ設定はカスタマイズが必要な場合、事前にAurora用の設定を用意します。
- 所要時間は45分程でした。
レプリケーションの動作確認
MySQL 5.6 ノード
中継環境となるRDS MySQL5.6環境の稼動状態を確認します
- レプリケーションの状態が「レプリケーション中」
- リードレプリカのソース、意図したレプリカ元(MySQL5.5のマスタDB)である事。
- レプリケーションエラーが発生していない事
レプリケーションの詳細で、レプリカ元のDB、レプリカ先のAuroraを確認します。
Aurora
DB クラスターの詳細
- レプリケーションソースの確認を行います。
SHOW SLAVE STATUS 情報
- 「mysql」コマンド等を利用し、DB管理者ユーザでDB接続します
- 「SHOW SLAVE STATUS」を実行し、「Slave_IO_Running」「Slave_SQL_Running」が「Yes」である事を確認します
mysql> show slave status \\G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.7.15.0 Master_User: rdsrepladmin Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin-changelog.000168 Read_Master_Log_Pos: 95945 Relay_Log_File: relaylog.000034 Relay_Log_Pos: 96118 Relay_Master_Log_File: mysql-bin-changelog.000168 Slave_IO_Running: Yes Slave_SQL_Running: Yes
Aurora 昇格
- Auroraのレプリケーションを解除して本番DBとして利用する場合、「リードレプリカへの昇格」を実施します。
- 不要となったリードレプリカ環境を削除する場合にも、リードレプリカの昇格が必要です。
- 検証用のDBが必要な場合、リードレプリカのAuroraからクローンを作成する事も可能です。
まとめ
RDS MySQL 5.6の多段レプリカを経由する事で、RDS MySQL 5.5からAuroraのリードレプリカを作成し、 DB移行を短時間の停止で実現する事ができました。
MultiAZで構成されたRDSであれば、リードレプリカの追加はマスタDBへの動作影響なく実施する事が可能です。
ダウンタイムのないパッチ適用や、本番環境のDBから検証環境を手軽に複製できるデータベースのクローン機能など、 クラウドネィティブなRDBMSとして進化を続けるAmazon Aurora。 RDS MySQL環境からの移行の際には、レプリケーション機能をご活用ください。
参考
AWS公式
MySQL公式
- MySQL 5.6 リファレンスマニュアル
ブログ
- Developers.IO
https://dev.classmethod.jp/cloud/aws/replication-from-rds-mysql57-to-aurora/